home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_class.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  8KB  |  331 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. '''Test the functionality of Python classes implementing operators.'''
  5. from test.test_support import TestFailed
  6. testmeths = [
  7.     'add',
  8.     'radd',
  9.     'sub',
  10.     'rsub',
  11.     'mul',
  12.     'rmul',
  13.     'div',
  14.     'rdiv',
  15.     'mod',
  16.     'rmod',
  17.     'divmod',
  18.     'rdivmod',
  19.     'pow',
  20.     'rpow',
  21.     'rshift',
  22.     'rrshift',
  23.     'lshift',
  24.     'rlshift',
  25.     'and',
  26.     'rand',
  27.     'or',
  28.     'ror',
  29.     'xor',
  30.     'rxor',
  31.     'contains',
  32.     'getitem',
  33.     'getslice',
  34.     'setitem',
  35.     'setslice',
  36.     'delitem',
  37.     'delslice',
  38.     'neg',
  39.     'pos',
  40.     'abs',
  41.     'init']
  42.  
  43. class AllTests:
  44.     
  45.     def __coerce__(self, *args):
  46.         print '__coerce__:', args
  47.         return (self,) + args
  48.  
  49.     
  50.     def __hash__(self, *args):
  51.         print '__hash__:', args
  52.         return hash(id(self))
  53.  
  54.     
  55.     def __str__(self, *args):
  56.         print '__str__:', args
  57.         return 'AllTests'
  58.  
  59.     
  60.     def __repr__(self, *args):
  61.         print '__repr__:', args
  62.         return 'AllTests'
  63.  
  64.     
  65.     def __int__(self, *args):
  66.         print '__int__:', args
  67.         return 1
  68.  
  69.     
  70.     def __float__(self, *args):
  71.         print '__float__:', args
  72.         return 1.0
  73.  
  74.     
  75.     def __long__(self, *args):
  76.         print '__long__:', args
  77.         return 0x1L
  78.  
  79.     
  80.     def __oct__(self, *args):
  81.         print '__oct__:', args
  82.         return '01'
  83.  
  84.     
  85.     def __hex__(self, *args):
  86.         print '__hex__:', args
  87.         return '0x1'
  88.  
  89.     
  90.     def __cmp__(self, *args):
  91.         print '__cmp__:', args
  92.         return 0
  93.  
  94.     
  95.     def __del__(self, *args):
  96.         print '__del__:', args
  97.  
  98.  
  99. method_template = 'def __%(method)s__(self, *args):\n    print "__%(method)s__:", args\n'
  100. for method in testmeths:
  101.     exec method_template % locals() in AllTests.__dict__
  102.  
  103. del method
  104. del method_template
  105. testme = AllTests()
  106. testme + 1
  107. 1 + testme
  108. testme - 1
  109. 1 - testme
  110. testme * 1
  111. 1 * testme
  112. if 1 / 2 == 0:
  113.     testme / 1
  114.     1 / testme
  115. else:
  116.     testme.__coerce__(1)
  117.     testme.__div__(1)
  118.     testme.__coerce__(1)
  119.     testme.__rdiv__(1)
  120. testme % 1
  121. 1 % testme
  122. divmod(testme, 1)
  123. divmod(1, testme)
  124. testme ** 1
  125. 1 ** testme
  126. testme >> 1
  127. 1 >> testme
  128. testme << 1
  129. 1 << testme
  130. testme & 1
  131. 1 & testme
  132. testme | 1
  133. 1 | testme
  134. testme ^ 1
  135. 1 ^ testme
  136. 1 in testme
  137. testme[1]
  138. testme[1] = 1
  139. del testme[1]
  140. testme[:42]
  141. testme[:42] = 'The Answer'
  142. del testme[:42]
  143. testme[2:1024:10]
  144. testme[2:1024:10] = 'A lot'
  145. del testme[2:1024:10]
  146. testme[(:42, ..., :24:, 24, 100)]
  147. testme[(:42, ..., :24:, 24, 100)] = 'Strange'
  148. del testme[(:42, ..., :24:, 24, 100)]
  149. del AllTests.__getslice__
  150. del AllTests.__setslice__
  151. del AllTests.__delslice__
  152. import sys
  153. if sys.platform[:4] != 'java':
  154.     testme[:42]
  155.     testme[:42] = 'The Answer'
  156.     del testme[:42]
  157. else:
  158.     print '__getitem__: (slice(0, 42, None),)'
  159.     print "__setitem__: (slice(0, 42, None), 'The Answer')"
  160.     print '__delitem__: (slice(0, 42, None),)'
  161. -testme
  162. +testme
  163. abs(testme)
  164. int(testme)
  165. long(testme)
  166. float(testme)
  167. oct(testme)
  168. hex(testme)
  169. hash(testme)
  170. repr(testme)
  171. str(testme)
  172. testme == 1
  173. testme < 1
  174. testme > 1
  175. testme != 1
  176. testme != 1
  177. 1 == testme
  178. 1 < testme
  179. 1 > testme
  180. 1 != testme
  181. 1 != testme
  182. del testme
  183. if sys.platform[:4] == 'java':
  184.     import java
  185.     java.lang.System.gc()
  186.  
  187.  
  188. class ExtraTests:
  189.     
  190.     def __getattr__(self, *args):
  191.         print '__getattr__:', args
  192.         return 'SomeVal'
  193.  
  194.     
  195.     def __setattr__(self, *args):
  196.         print '__setattr__:', args
  197.  
  198.     
  199.     def __delattr__(self, *args):
  200.         print '__delattr__:', args
  201.  
  202.  
  203. testme = ExtraTests()
  204. testme.spam
  205. testme.eggs = 'spam, spam, spam and ham'
  206. del testme.cardinal
  207.  
  208. class BadTypeClass:
  209.     
  210.     def __int__(self):
  211.         pass
  212.  
  213.     __float__ = __int__
  214.     __long__ = __int__
  215.     __str__ = __int__
  216.     __repr__ = __int__
  217.     __oct__ = __int__
  218.     __hex__ = __int__
  219.  
  220.  
  221. def check_exc(stmt, exception):
  222.     """Raise TestFailed if executing 'stmt' does not raise 'exception'
  223.     """
  224.     
  225.     try:
  226.         exec stmt
  227.     except exception:
  228.         pass
  229.  
  230.     raise TestFailed, '%s should raise %s' % (stmt, exception)
  231.  
  232. check_exc('int(BadTypeClass())', TypeError)
  233. check_exc('float(BadTypeClass())', TypeError)
  234. check_exc('long(BadTypeClass())', TypeError)
  235. check_exc('str(BadTypeClass())', TypeError)
  236. check_exc('repr(BadTypeClass())', TypeError)
  237. check_exc('oct(BadTypeClass())', TypeError)
  238. check_exc('hex(BadTypeClass())', TypeError)
  239.  
  240. class IntLongMixClass:
  241.     
  242.     def __int__(self):
  243.         return 0x0L
  244.  
  245.     
  246.     def __long__(self):
  247.         return 0
  248.  
  249.  
  250.  
  251. try:
  252.     int(IntLongMixClass())
  253. except TypeError:
  254.     raise TestFailed, 'TypeError should not be raised'
  255.  
  256.  
  257. try:
  258.     long(IntLongMixClass())
  259. except TypeError:
  260.     raise TestFailed, 'TypeError should not be raised'
  261.  
  262.  
  263. class C0:
  264.     pass
  265.  
  266. hash(C0())
  267.  
  268. class C1:
  269.     
  270.     def __cmp__(self, other):
  271.         return 0
  272.  
  273.  
  274. check_exc('hash(C1())', TypeError)
  275.  
  276. class C2:
  277.     
  278.     def __eq__(self, other):
  279.         return 1
  280.  
  281.  
  282. check_exc('hash(C2())', TypeError)
  283.  
  284. class A:
  285.     pass
  286.  
  287. A.__call__ = A()
  288. a = A()
  289.  
  290. try:
  291.     a()
  292. except RuntimeError:
  293.     pass
  294.  
  295. raise TestFailed, 'how could this not have overflowed the stack?'
  296.  
  297. def booh(self):
  298.     raise AttributeError, 'booh'
  299.  
  300.  
  301. class A:
  302.     a = property(booh)
  303.  
  304.  
  305. try:
  306.     A().a
  307. except AttributeError:
  308.     x = None
  309.     if str(x) != 'booh':
  310.         print 'attribute error for A().a got masked:', str(x)
  311.     
  312. except:
  313.     str(x) != 'booh'
  314.  
  315.  
  316. class E:
  317.     __eq__ = property(booh)
  318.  
  319. E() == E()
  320.  
  321. class I:
  322.     __init__ = property(booh)
  323.  
  324.  
  325. try:
  326.     I()
  327. except AttributeError:
  328.     x = None
  329.  
  330. print 'attribute error for I.__init__ got masked'
  331.